package com.example.missingpersons.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.io.Serial;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;

/**
 * report 实体类
 * @author 张芸博
 * @since 2025-03-12
 */
@Data
@AllArgsConstructor
public class Report implements Serializable {
    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 报案信息的唯一标识
     */
    @TableId(value = "report_id", type = IdType.AUTO)
    @Schema(name = "report_id", description = "报案信息的唯一标识")
    private Integer reportId;

    /**
     * 关联的失踪人员ID
     */
    @Schema(name = "person_id", description = "关联的失踪人员ID")
    private Integer personId;

    /**
     * 报案人姓名
     */
    @Schema(name = "reporter_name", description = "报案人姓名")
    private String reporterName;

    /**
     * 报案人联系方式
     */
    @Schema(name = "reporter_contact", description = "报案人联系方式")
    private String reporterContact;

    /**
     * 报案日期
     */
    @Schema(name = "report_date", description = "报案日期")
    private LocalDate reportDate;

    /**
     * 报案地点
     */
    @Schema(name = "report_location", description = "报案地点")
    private String reportLocation;

    /**
     * 报案描述
     */
    @Schema(name = "report_description", description = "报案描述")
    private String reportDescription;

    /**
     * 记录创建时间
     */
    @Schema(name = "created_at", description = "记录创建时间")
    private LocalDateTime createdAt;

    /**
     * 记录更新时间
     */
    @Schema(name = "updated_at", description = "记录更新时间")
    private LocalDateTime updatedAt;


}
